package com.demo.java.OD101_150.OD107;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【数字加减游戏】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/145693122
 */
public class OdMain {
    public static void main(String[] args) {
        try {
            Scanner sc = new Scanner(System.in);
            // 读取输入
            int s = sc.nextInt();  // 起始位置
            int t = sc.nextInt();  // 目标位置
            int a = sc.nextInt();  // 每次变化的步长
            int b = sc.nextInt();  // 判断的步长

            // 输入验证：如果 a 和 b 相等，则输入错误
            if (a == b) {
                System.out.println("input error");
                return;
            }

            // 计算起点和终点的距离
            int distance = Math.abs(s - t);

            // 计算使距离通过减少的步长变为 b 的倍数需要的步数
            int decreaseSteps = 0;
            int temp = distance;
            while (temp % b != 0) {
                temp -= a; // 每次减少步长 a
                decreaseSteps++;
            }

            // 计算使距离通过增加的步长变为 b 的倍数需要的步数
            int increaseSteps = 0;
            temp = distance;
            while (temp % b != 0) {
                temp += a; // 每次增加步长 a
                increaseSteps++;
            }

            // 输出最小的步数
            System.out.print(Math.min(decreaseSteps, increaseSteps));

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("input error");
        }
    }
}